1. Field of the Invention
The invention generally relates to computer software, and in particular to systems and methods for representing and/or generating software code for application program interfaces (APIs).
2. Description of the Related Art
Individuals, businesses, schools, governmental agencies, and the like use computer software to assist in the performance of a myriad of tasks. A very wide variety of software applications are available from many software vendors. Often, one vendor's software application is not compatible with another vendor's software application. This incompatibility is even more acute among enterprise applications, which are typically more specialized than consumer software.
Input/output data can flow through an enterprise application via an application program interface (API). However, standardized interfaces, such as standardized APIs for applications written under Windows® by Microsoft Corporation, are not typically encountered with enterprise applications. Rather, the API for an enterprise application is typically unique to that application and/or to that software vendor. Despite the resulting incompatibility between enterprise applications, the sharing of data between incompatible software applications is often desired by end users. For example, companies with disparate and incompatible software systems may decide to become business partners. Companies with disparate software systems may merge. A business may prefer a particular application for one task from one vendor, and prefer another application for a different task and yet desire to share data between the applications.
One tool that permits otherwise incompatible systems to work together, i.e., “collaborate,” is known as “middleware.” Middleware is intermediate software that modifies data for compatibility. Such middleware can be used to permit disparate applications to communicate, to permit a software application to communicate with an otherwise incompatible database, and the like. For example, middleware can translate data flows between two dissimilar or otherwise incompatible APIs, can translate messages from one format to another, and the like.
Traditional techniques to generate middleware are inadequate. Traditional techniques, such as hand coding, are slow and are prone to errors.